#include<stdio.h>
void main()
{
	float sum = 0;
	float sum1 =0;
	float c = 0;
	float y, t;
	int i;
	for (i=0;i<4000000;i++)
		sum1+=0.1;

	for( i=0;i<4000000;i++)
	{
		y=0.1-c;
		t=sum+y;
		c = (t-sum) -y;
		sum = t;
	}
	
	printf ("sum1=%f\n" , sum1) ;
	printf ("sum =%f\n" , sum) ;
}

/*
KAHAN累加算法：
主要思想:设法计算出每次累加所带来的舍入误差,并将其添加在下一次的加数上，这样就可以获得更为准确的结果。
使用前提:尽量在浮点数数值相近时进行加减计算,才能充分利用有效位数。
*/
